package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;
import java.util.Date;

/**
 * 信用统计服务接口
 * 
 * @author ruoyi
 * @date 2024-01-26
 */
public interface ICreditStatisticsService 
{
    /**
     * 获取用户行为分析数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 用户行为分析数据
     */
    Map<String, Object> getUserBehaviorAnalysis(Date startDate, Date endDate);

    /**
     * 获取服务使用分析数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 服务使用分析数据
     */
    Map<String, Object> getServiceUsageAnalysis(Date startDate, Date endDate);

    /**
     * 获取信用分趋势分析数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 信用分趋势分析数据
     */
    Map<String, Object> getCreditScoreTrend(Date startDate, Date endDate);

    /**
     * 获取异常数据监控
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 异常数据列表
     */
    List<Map<String, Object>> getAnomalyData(Date startDate, Date endDate);

    /**
     * 获取详细统计数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 详细统计数据
     */
    Map<String, Object> getDetailedStats(Date startDate, Date endDate);

    /**
     * 获取用户行为详细数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 用户行为详细数据
     */
    List<Map<String, Object>> getUserBehaviorDetails(Date startDate, Date endDate);

    /**
     * 获取服务使用详细数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 服务使用详细数据
     */
    List<Map<String, Object>> getServiceUsageDetails(Date startDate, Date endDate);

    /**
     * 获取地区活跃度数据
     * 
     * @return 地区活跃度数据
     */
    Map<String, Object> getRegionActivityData();

    /**
     * 获取服务分布数据
     * 
     * @return 服务分布数据
     */
    Map<String, Object> getServiceDistributionData();

    /**
     * 获取概览统计数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 概览统计数据
     */
    Map<String, Object> getOverviewStats(Date startDate, Date endDate);

    /**
     * 获取信用分分布数据
     * 
     * @return 信用分分布数据
     */
    Map<String, Object> getCreditDistribution();

    /**
     * 获取服务使用趋势数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 服务使用趋势数据
     */
    Map<String, Object> getServiceUsageTrend(Date startDate, Date endDate);

    /**
     * 获取地区分布数据
     * 
     * @return 地区分布数据
     */
    Map<String, Object> getRegionDistribution();

    /**
     * 获取收入统计数据
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 收入统计数据
     */
    Map<String, Object> getRevenueStats(Date startDate, Date endDate);
} 